﻿using System;
using MagicKey.Components.UserManager;

namespace MagicKey.Interfaces
{
    public interface IUserManager
    {
        /// <summary>
        /// Gets the name of an user from the list of all enrolled users.
        /// </summary>
        /// <param name="username">The name of the new user.</param>
        User GetUser(String username);
        /// <summary>
        /// Adds the name of a new user to the list of all enrolled users.
        /// </summary>
        /// <param name="username">The name of the new user.</param>
        void AddUser(String username);

        bool AddUser(string username, string password, string salt, string role, string publicKey, string privateKey);

        /// <summary>
        /// Deletes the name of an user from the list of all enrolled users.
        /// </summary>
        /// <param name="username">The name of the user to be deleted.</param>
        void DeleteUser(String username);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        string GetUserSymetricKey(string username);

        /// <summary>
        /// 
        /// </summary>
        void LoadAllUsers();

        /// <summary>
        /// 
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        string GetOwnerName(string path);

    }
}